//package com.hnyyac.ad.mds.views_load
//
//import android.content.Context
//import android.os.Handler
//import android.os.Looper
//import android.util.Log
//import com.hnyyac.ad.mds.IAdType
//import com.hnyyac.ad.mds.IAdView
//import java.util.concurrent.ExecutorService
//import java.util.concurrent.Executors
//
//object PreLoadHelper {
//    private var preLoadAdMap = HashMap<String, ArrayList<IAdView>>() // key position , value 对应 ad list
//    private val executorService: ExecutorService = Executors.newSingleThreadExecutor()
//    private const val MAX_RETRIES = 3
//
//    fun pushPreLoadAd(ad: IAdView) {
//        preLoadAdMap[ad.getPosition()]?.add(ad)?:ArrayList<IAdView>().apply {
//            add(ad)
//            preLoadAdMap[ad.getPosition()!!] = this
//        }
//    }
//
//    fun preLoadAd(context: Context, showId: String,adType: IAdType, position: String, retryCount: Int = 0) {
//        Log.e("qin", "开始预加载加载广告")
//        executorService.submit {
//            Log.e("qin", "开始预加载加载广告")
//            val ad = when (adType) {
//                IAdType.interstitial -> {
//                    // 加载插屏广告
//                    NewGromoreOnInterstitialAd(context, showId, initialPosition = position)
//                }
//                IAdType.reward_video -> {
//                    // 加载激励视频广告
//                    NewGromoreRewardedVideoAd(context, showId, initialPosition = position)
//                }
//                else -> {
//                    // 加载其他类型的广告
//                    null
//                }
//            }
//            ad?.apply {
//
//                loadAd()
//            }
//       }
//
//    }
//
//    fun getPreLoadAd(position: String, adType: IAdType): IAdView? {
////        if (preLoadAdMap[position]?.isEmpty() == true) {
////            return null
////        }
////        return preLoadAdMap[position]?.find {
////            it.getAdType() == adType
////        }
//        val adList = preLoadAdMap[position] ?: return null
//        val ad = adList.find { it.getAdType() == adType } ?: return null
//        adList.remove(ad)
//        Log.e("qin", "获取预加载广告")
//        when (ad) {
//            is NewGromoreOnInterstitialAd -> {
//                Handler(Looper.getMainLooper()).post {
//                    preLoadAd(ad.context, ad.getAdShowId(), adType, position)
//                }
//            }
//
//            is NewGromoreRewardedVideoAd -> {
//                Handler(Looper.getMainLooper()).post {
//                    preLoadAd(ad.context, ad.getAdShowId(), adType, position)
//                }
//            }
//        }
//        return ad
//
//    }
//}